package com.systop.asset.mapper;

import com.systop.asset.entity.InventoryCheckDetail;
import com.systop.asset.entity.vo.CheckAssetVo;
import com.systop.asset.entity.vo.CheckMaterialVo;

import java.util.List;

/**
 * 盘点单明细Mapper接口
 * 
 * @author lsp
 * @date 2025-07-07
 */
public interface InventoryCheckDetailMapper 
{
    /**
     * 查询盘点单明细
     * 
     * @param inventoryCheckDetailId 盘点单明细主键
     * @return 盘点单明细
     */
    public InventoryCheckDetail selectInventoryCheckDetailByInventoryCheckDetailId(Long inventoryCheckDetailId);

    /**
     * 查询盘点单明细列表
     * 
     * @param inventoryCheckDetail 盘点单明细
     * @return 盘点单明细集合
     */
    public List<InventoryCheckDetail> selectInventoryCheckDetailList(InventoryCheckDetail inventoryCheckDetail);

    public List<CheckAssetVo> selectCheckAssetList(InventoryCheckDetail inventoryCheckDetail);
    public List<CheckMaterialVo> selectCheckMaterial(Long checkId);

    /**
     * 新增盘点单明细
     * 
     * @param inventoryCheckDetail 盘点单明细
     * @return 结果
     */
    public int insertInventoryCheckDetail(InventoryCheckDetail inventoryCheckDetail);
    public int insertInventoryCheckDetails(List<InventoryCheckDetail> inventoryCheckDetails);
    /**
     * 修改盘点单明细
     * 
     * @param inventoryCheckDetail 盘点单明细
     * @return 结果
     */
    public int updateInventoryCheckDetail(InventoryCheckDetail inventoryCheckDetail);

    /**
     * 删除盘点单明细
     * 
     * @param inventoryCheckDetailId 盘点单明细主键
     * @return 结果
     */
    public int deleteInventoryCheckDetailByInventoryCheckDetailId(Long inventoryCheckDetailId);

    /**
     * 批量删除盘点单明细
     * 
     * @param inventoryCheckDetailIds 需要删除的数据主键集合
     * @return 结果
     */
    public int deleteInventoryCheckDetailByInventoryCheckDetailIds(Long[] inventoryCheckDetailIds);

    List<CheckAssetVo> selectCheckAssetBySelf(Long userid);
}
